package io.gitee.welson.sensitive.service;

import java.util.List;

/**
 * 通用批量数据迭代器
 * @author welson
 * @param <T> 数据类型
 */
public interface BatchDataIterator<T> {
    /**
     * 是否还有下一批数据
     */
    boolean hasNext();

    /**
     * 获取下一批数据
     */
    List<T> next();

    /**
     * 获取当前批次号
     */
    default int getCurrentBatch() {
        return 0;
    }

    /**
     * 获取总批次数
     */
    default int getTotalBatches() {
        return -1;
    }

    /**
     * 释放资源
     */
    default void close() {}
}